package com.axin.oss.service;

import com.axin.common.core.domain.web.TableDataInfo;
import com.axin.oss.api.domain.SysOss;
import com.axin.oss.api.domain.SysOssConfig;
import com.axin.oss.api.dto.SysOssConfigDTO;
import com.axin.oss.api.vo.SysOssConfigVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Collection;

/**
 * 对象存储配置Service接口
 * @author axin
 */
public interface ISysOssConfigService extends IService<SysOssConfig> {

    /**
     * 查询列表
     * @param dto
     * @return
     */
    TableDataInfo<SysOssConfigVo> queryPageList(SysOssConfigDTO dto);

    /**
     * 查询单个
     * @param ossConfigId
     * @return
     */
    SysOssConfigVo queryById(Long ossConfigId);


    /**
     * 根据新增业务对象插入对象存储配置
     * @param dto 对象存储配置新增业务对象
     * @return
     */
    Boolean insertByDTO(SysOssConfigDTO dto);


    /**
     * 根据编辑业务对象修改对象存储配置
     * @param dto 对象存储配置编辑业务对象
     * @return
     */
    Boolean updateByDTO(SysOssConfigDTO dto);


    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 状态修改
     * @param dto
     * @return
     */
    int updateOssConfigStatus(SysOssConfigDTO dto);
}
